<?php

/**
 * ClientesController
 * 
 * @package Sgit 
 * @author Juan Manuel Martinez Carrillo
 * @copyright Juan Manuel Martinez Carrillo
 * @version 2012
 * @access public
 * @revision 17/02/2012 8:53:55
 */

class ClientesController extends Sgit_Controller_Action
{

    protected $_main_model = 'clientes';
    protected $_main_form = 'Cliente';

    protected $_proyectosByCliente = null;


    protected function _begin()
    {
        $this->_model->proyectos = new Application_Model_Proyectos();
    }


    public function indexAction()
    {
        $rows = $this->_model->default->getAll();
        $this->view->rows = $this->_prepareRowsToTr($rows);
    }


    public function editarAction()
    {
        $this->_editar();
    }

    public function insertarAction()
    {
        $this->_insertar();
    }

    public function borrarAction()
    {
        $this->_borrar();
    }


    protected function _prepareValuesToTr($row)
    {
        $row['f_alta'] = Sgit_Filter_DateDbToLocalize::filter($row['f_alta']);
        $row['proyectos'] = $this->_proyectosByCliente($row['id']);
        return $row;
    }

    protected function _prepareValuesToForm($row)
    {
        $row['f_alta'] = ($row['f_alta']) ? $row['f_alta'] : date('Y-m-d');
        $row['f_alta'] = Sgit_Filter_DateDbToForm::filter($row['f_alta']);
        return $row;
    }

    protected function _prepareValuesToDb()
    {
        $row = $this->_form->getValues();
        $row['f_alta'] = Sgit_Filter_DateToDb::filter($row['f_alta']);
        return $row;
    }

    protected function _proyectosByCliente($id)
    {
        if (null == $this->_proyectosByCliente)
        {
            $this->_proyectosByCliente = $this->_model->proyectos->getAssocMultiple('id_cliente', 'id', array('nombre', 'id_zona'));
        }
        return $this->_proyectosByCliente[$id];

    }
}
